﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Punto_de_Venta
{
    public partial class Corte : Form
    {
        static String[] datosUsuario = Operaciones.GetDatosUsuario();       //obtenemos el arreglo que contiene los datos del usuario activo
        int idUsuario = Convert.ToInt16(datosUsuario[1]);                   //asignamos el id del usuario en la sesion actual
        Operaciones operacion = new Operaciones();
        public Corte()
        {
            InitializeComponent();
        }

        private void Corte_Load(object sender, EventArgs e)
        {
            
       
        }

        private void btnGenerarCorte_Click(object sender, EventArgs e)
        {
            try
            {
                double cantidadRetirar = Convert.ToDouble(txtDineroRetirar.Text);
                if (Operaciones.GetEfectivo() >= cantidadRetirar)
                {
                    double cantidadFinal = Operaciones.GetEfectivo() - cantidadRetirar;
                    String consulta = "insert into corte(fecha, CantidadFinal,cantidadCaja, id_empleado) values('"
                                        + DateTime.Now.ToString("yyy-MM-dd hh:mm:ss") + "','"
                                        + cantidadFinal + "','"
                                        + Operaciones.GetEfectivo() + "','"
                                        + idUsuario + "')";
                    if (operacion.Sql(consulta))
                    {
                        btnSalir.Visible = true;
                        Operaciones.RestarEfectivo(cantidadRetirar);
                        txtDineroRetirar.Text = "";
                        //imprimir ticket
                    }


                }
                else {
                    Operaciones.MessageBoxx("no se puede retirar una cantidad mayor"+Environment.NewLine+" que la que hay en caja", "");
                    txtDineroRetirar.Text = "";
                }
            }
            catch {
                Operaciones.MessageBoxx("Error en el formato de entrada de la cantidad" + Environment.NewLine + " a retirar, solo valores numericos", "Formato de entrada incorrecto");
            }
        }

        private void btnCancelarCorte_Click(object sender, EventArgs e)
        {
            Principal_SPV principal = new Principal_SPV();
            principal.Show();
            Dispose();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            Operaciones.ReiniciarEfectivo();
            login login = new login();
            login.Show();
            Dispose();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            lblCantidadInicialCaja.Text = Operaciones.getCantidadInicial().ToString();
           double cantidadCaja= Operaciones.GetEfectivo();
            lblCantidadCaja.Text = cantidadCaja.ToString();
            if(cantidadCaja==0){
                btnGenerarCorte.Enabled = false;
            }
        }
    } 
}
